package com.eddie.community.service;

import com.eddie.community.entity.User;
import com.eddie.community.util.CommunityConstant;
import com.eddie.community.util.RedisKeyUtil;
import org.springframework.dao.DataAccessException;
import org.springframework.data.redis.core.RedisOperations;
import org.springframework.data.redis.core.SessionCallback;

import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * Description:关注业务
 * Date: 2021/3/2 0002 14:29
 * Author: Eddie.Zhan
 * Email: eddie_zhan@yeah.net
 */
public interface FollowService {
     void follow(int userId, int entityType, int entityId);

     void unfollow(int userId, int entityType, int entityId) ;

    // 查询关注的实体的数量
     long findFolloweeCount(int userId, int entityType) ;

    // 查询实体的粉丝的数量
     long findFollowerCount(int entityType, int entityId) ;
    // 查询当前用户是否已关注该实体
     boolean hasFollowed(int userId, int entityType, int entityId) ;

    // 查询某用户关注的人
     List<Map<String, Object>> findFollowees(int userId, int offset, int limit) ;

    // 查询某用户的粉丝
     List<Map<String, Object>> findFollowers(int userId, int offset, int limit) ;
}
